﻿#include"game.h"
void Initboard(char board[ROWS][COLS], int rows, int cols, char set)
{
	int i = 0;
	int j = 0;
	for (i = 0; i < rows; i++) {

		for (j = 0; j < cols; j++) {
			board[i][j] = set;
		}
	}

}
void Displayboard(char board[ROWS][COLS], int row, int col) {
	int i = 0;
	int j = 0;
	printf("-----------------扫雷-----------\n");



	for (j = 0; j <= col; j++) {
		printf("%d ", j);
	}printf("\n");




	for (i = 1; i <= row; i++) {
		printf("%d ", i);

		for (j = 1; j <= col; j++) {
			printf("%c ", board[i][j]);
		}printf("\n");
	}
	printf("-----------------扫雷-----------\n");
}
void Setmine(char board[ROWS][COLS], int row, int col) {
	int lei = count;
	while (lei) {
		int x = rand() % row + 1;
		int y = rand() % col + 1;
		if (board[x][y] == '0') {
			board[x][y] = '1';
			lei--;
		}
	}

}
int get_mine_count(char board[ROWS][COLS], int x, int y)
{
	return	board[x - 1][y] +
		board[x - 1][y - 1] +
		board[x][y - 1] +
		board[x + 1][y - 1] +
		board[x + 1][y] +
		board[x + 1][y + 1] +
		board[x][y + 1] +
		board[x - 1][y + 1] - 8 * '0';



}
void Findmine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col) {
	//判断坐标合法性

	int win = row * col - count;
	while (win) {
		int x = 0;
		int y = 0;

		//找到非雷的个数
		printf("请输入要排查雷的坐标,坐标之间用空格隔开，先行后列。\n");

		scanf("%d %d", &x, &y);
		if (x >= 1 && x <= row && y >= 1 && y <= col) {
			if (show[x][y] != '*') {
				printf("该坐标已被排查过，不能重复排查。\n");//防止排雷重复
			}
			else {
				if (mine[x][y] == '1') {
					printf("扫到雷，已被炸死\n");
					Displayboard(mine, ROW, COL);
					break;

				}
				else {//统计mine中x，y周围的雷
					int counts = get_mine_count(mine, x, y);
					show[x][y] = counts + '0';//转换数字字符
					Displayboard(show, ROW, COL);
					win--;
				}

			}
		}
		else printf("输入的坐标非法，请重新输入\n");
	}
	if (win == 0) {
		printf("恭喜排雷成功！！！\n");
		Displayboard(mine, ROW, COL);
	}
}